<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /* 计数2k 因此i+=2k */
      var reverseStr = function (s, k) {
        let arr = s.split("");
        //i从0  4   8
        for (let i = 0; i < arr.length; i += 2 * k) {
          //找出需要反转的区间
          let left = i;
          //判断right是否超出范围 如果超出，那么需要反转的就到后面，不然就是一个k的范围
          let right = i + k >= arr.length ? arr.length - 1 : i + k - 1;
          //判断剩余字符长度是否大于k  如果小于k 全部反转，如果大于k反转k长度的
          while (left <= right) {
            [arr[left], arr[right]] = [arr[right], arr[left]];
            left++;
            right--;
          }
        }
        return arr.join("");
      };
      reverseStr("abcdefghij", 2);
    </script>
  </body>
</html>
